#ifndef CUBESHADER_H
#define CUBESHADER_H

#include "baseshader.h"
#include <QMatrix4x4>

class CubeShader : public BaseShader
{
    Q_OBJECT
public:
    CubeShader(QObject *parent = Q_NULLPTR);
    virtual void initializeGL();
    virtual void paintGL();

    float vertices[216];
    QMatrix4x4 projection;
    QMatrix4x4 view;
    QMatrix4x4 model;
    QVector3D viewPos;
    QVector3D lightColor;

private:
    GLuint aPos;
    GLuint aNormal;

    GLuint vao;
    GLuint vbo;

    GLuint uniform_projection;
    GLuint uniform_view;
    GLuint uniform_model;

    GLuint uniform_ambient;
    GLuint uniform_diffuse;
    GLuint uniform_specular;
    GLuint uniform_shininess;

    GLuint uniform_objectColor;
    GLuint uniform_viewPos;

    GLuint uniform_light_ambient;
    GLuint uniform_light_diffuse;
    GLuint uniform_light_specular;
    GLuint uniform_light_position;

};

#endif // CUBESHADER_H
